iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
AI/ ML & Data

【AI筆記】30天從論文入門到 Pytorch 實戰系列 第 14

【AI筆記】30天從論文入門到 Pytorch 實戰:T2I Diffusion Model 論文閱讀 Day 13

  • 分享至 

  • xImage
  •  

Text-to-Image (T2I) Generation

Text-to-Image (T2I) 生成模型是一種能夠根據文本描述生成圖像的技術。這些模型主要分為兩大類:Autoregression Model 和 Diffusion Model。
Model

  • Parti 是一個兩階段模型,與 DALL-E, CogView, Make-A-Scene 相似。
  • DALL·E OpenAI 的第一個 Text-to-Image 模型,DALL·E 生成的圖像由 CLIP 模型進行篩選,以呈現最高品質的圖像。
  • 自2020年DDPM發明以來,帶動了Diffusion在生成圖像方面的發展。 到 2021 年 12 月,也出現了許多關於 Diffusion text-to-image generation 的論文。 目前主流的生成模型不再依賴GANs,而是使用最新的Diffusion模型。
  • 缺點是生成圖很模糊品質不好,但VAE比GAN的robust還要好,但實際上GAN在finetune後效果比VAE更好

Imagen

Imagen 主要模塊及工作流程如圖
google

  1. 首先,把prompt輸入到frozen text encoder中,得到text embedding
  2. 把text embedding輸入到生成模型中,其實就是給模型信息,讓他基於這個信息去生成圖像。第一步先成低分辨率的圖像,然後再串聯2個super-resolution網絡,這兩個網絡的輸入是前面的低品質圖像和text embedding。
  3. 最終就可以輸出高質量的圖像。

Frozen pretrained text encoders

Google 他們有實驗過 3 種 Frozen pretrained text encoders: BERT, T5 and CLIP.

人類比較喜歡 T5-XXL encoders > CLIP text encoders

Text-to-Image Diffusion Model

LOSS

  • DDIM + classifier-free
  • Google 額外研究 U-Net,並創新 Efficient U-Net 改善記憶體效率、推理時間和收斂速度 (改成 GroupNorm, swish, CombineEmbs)

Robust cascaded diffusion models

因為Diffusion直接推高解析度的圖片會花很久時間,而且容易生成品質差。
他們會訓練 2 個擴散模型,專門處理 super resolution:

所以他們改成

  1. 基礎模型:過程從生成低解析度圖像(例如 64×64 像素)的基礎模型開始。
  • 64×64 → 256×256
  • 256×256 → 1024×1024
    最終輸出 1024×1024 圖像
  1. 提高解析度模型:然後使用兩個文本條件的高解析度擴散模型將 64×64 圖像上採樣到 256×256,最終到 1024×1024 像素。

Super-resolution models: Efficient U-Net

  • 反轉下採樣/上採樣順序:反轉下採樣和上採樣操作的順序,以提高前向傳播的速度。
  • 移動模型參數:通過在低解析度層添加更多的殘差塊,將參數從高解析度塊移動到低解析度塊。這樣可以在不顯著增加Mem和計算成本的情況下增加模型容量。
  • 縮放跳躍連接:跳躍連接按比例縮放,這顯著提高了收斂速度。

結論

其實看到這篇以為是可以隨意應用的新的技術和創新,後來看到訓練這麼多模型就大概了解他們研究的範圍、深度或適用性可能有限。尤其T5模型又大又難訓練,真的需要錢錢才能使用這個模型。

DALL·E2 (unCLIP)

主要技術

在深入了解DALL·E2 的工作原理之前,讓我們先大致了解一下DALL·E2 如何生成圖像。
在最簡單的理解,DALL·E2 的工作非常簡單:
unCLIP

  1. 將 text prompt 輸入到經過訓練的text encoder以將prompt 映射到text encoder空間中
  2. 將Transfomer/Diffusion 模型將text encoding映射到相應的image embedding (這邊做過實驗發現Diffusion比較好)
  3. 再利用image embedding input到Diffusion 生成圖像空間的圖
    CLIP生成的Img encoder的embedding 設定為下面模型要預測的img embedding的ground truth

結論

這篇論文裏CLIP的這個模型一直都是鎖住的,是不會進行任何訓練和fine-tune。
DALL·E2 沒有用attention layers,所以說在做inference的時候,可以用在任何的一個尺寸上,不需要擔心說這個序列長度必須得保持一致。
DALL·E2 的主要方法主要建立在 CLIP 上,但跟 CLIP 做的事情是相反,所以也被稱作 unCLIP。但因為沒有開源,所以實際運作方法可能要再看一下其他資源。

Reference: https://arxiv.org/abs/2102.12092


上一篇
【AI筆記】30天從論文入門到 Pytorch 實戰:Diffusion Model 的基本介紹 Day 12
下一篇
【AI筆記】30天從論文入門到 Pytorch 實戰:ControlNet 論文閱讀 Day 14
系列文
【AI筆記】30天從論文入門到 Pytorch 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言